﻿//* ==========================================================================
// Classe : CSharp 
// Fonctions : Classe  d'outils propres au développement C# 
//
// License:  License LGPL 
// Version :  0.01 du 13/07/2008 
// Lien : http://outils.codeplex.com 
// Auteur(s) : JF. PACORY
// CopyLeft  :  CopyLeft (>) 2008-2009 GlopSoft <contact@glopsoft.com>
// Création : 06/30/2009 23:16:54
// Etat : en cours
// Controle du :
// Licence : 
// L'autorisation est accordée, à titre gratuit, à toute personne d'obtenir une copie 
// de ce logiciel et de ses fichiers de documentation, pour pouvoir utiliser 
//ce logiciel sans restriction, y compris, sans s'y limiter, les droits 
// d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, 
// de sous-licence, et / ou de vendre les copies du Logiciel, et d'autoriser les 
// personnes auxquelles le logiciel est livré de le faire, sous réserve des 
// conditions suivantes:
// 
// Les avis de droit d'auteur et la présente autorisation doivent être inclus dans 
// toutes les copies ou parties substantielles du Logiciel.
// 
// LE LOGICIEL EST FOURNI "TEL QUEL", SANS GARANTIE DE QUELQUE NATURE QUE CE SOIT, 
// EXPLICITE OU  IMPLICITE, Y COMPRIS, MAIS SANS Y LIMITER LES GARANTIES DE QUALITE 
// MARCHANDE, D'ADEQUATION A UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN 
// AUCUN CAS LES AUTEURS OU LES TITULAIRES DE DROITS D'AUTEUR POURRONT ETRE TENUE 
// RESPONSABLES DE TOUT DOMMAGE,  RÉCLAMATION OU AUTRE  RESPONSABILITE, DANS LE 
// CADRE D'UNE ACTION DE CONTRAT, UN DELIT OU AUTRE, DÉCOULANT DE, OU EN RELATION 
// AVEC LE LOGICIEL OU DE SON UTILISATION OU AUTRES EN RELATION AVEC LE LOGICIEL.
// Licence LGPL : http://commonlibrarynet.codeplex.com/license 
//*---------------------------------------------------------------------------
//
//* ==========================================================================

#region Références

using System;
using System.IO;

#endregion

namespace Outils.CSharp
{
    /// <summary>
    /// Classe  d'outils propres au développement C#
    /// </summary>
    public class CSharp
    {
        #region Attributs

        private string _fichierSortie = @"c:\temp\frmout.txt";
        private string _fichierSortiet = @"c:\temp\frmoutt.txt";
        private string _fichierSortievide = @"c:\temp\frmoutvide.txt";

        #endregion 

        #region recherche des donnees de composants d une classe winform 
        /// <summary>recherche des donnees de composants d une classe winform</summary>
        /// <remarks>25/06/2008</remarks>
        ///<param name="fichierEntree">Fichier </param>
        public void RechercheNameText_Click(string fichierEntree)
        { 
            string fichierSortie = _fichierSortie;
            string fichierSortiet = _fichierSortiet;
            string fichierSortievide = _fichierSortievide;

            StreamReader srfichierEntree = new StreamReader(fichierEntree, System.Text.Encoding.UTF8);
            StreamWriter swfichierSortie = new StreamWriter(fichierSortie, false, System.Text.Encoding.UTF8);
            StreamWriter swfichierSortiet = new StreamWriter(fichierSortiet, false, System.Text.Encoding.UTF8);
            StreamWriter swfichierSortievide = new StreamWriter(fichierSortievide, false, System.Text.Encoding.UTF8);

            string ligne = string.Empty;

            int index = 0;

            while (srfichierEntree.Peek() >= 0)
            {
                ligne = srfichierEntree.ReadLine();
                index = ligne.IndexOf(".Name = ", 0, ligne.Length);
                if (index >= 0)
                {
                    swfichierSortie.WriteLine(ligne);
                }
                else
                {
                    index = ligne.IndexOf(".Text = ", 0, ligne.Length);
                    if (index >= 0)
                    {
                        swfichierSortiet.WriteLine(ligne);
                        swfichierSortievide.WriteLine("private const string cst" + ligne);
                        //swfichierSortievide.WriteLine(ligne.Substring(0,index)+".Text=string.Empty;");
                    }
                    else
                    {
                        index = ligne.IndexOf("EventHandler(", 0, ligne.Length);
                        if (index >= 0)
                        {
                            swfichierSortiet.WriteLine(ligne);
                        }

                    }
                }
            }
            srfichierEntree.Close();
            swfichierSortie.Close();
            swfichierSortiet.Close();
            swfichierSortievide.Close();
        }

        #endregion

        #region Ajoute un fichier au projet

        /// <summary>Ajoute un fichier au projet</summary>
        /// <remarks>Création : 13/07/2008</remarks> 
        public void ProjetAjoutFichier()
        {
            //TODO : Méthode à terminer et contrôler
            /*
            // Récupération du projet
            Project proj = applicationObject.Solution.Item(1);

            // Chemin et nom du fichier C#
            String path = proj.FullName.Substring(0,proj.FullName.Length-7) + ".cs";

            // Création du fichier
            StreamWriter sw = new StreamWriter(path,false,System.Text.Encoding.UTF8);
            sw.WriteLine("ligne de test");
            sw.Close();

            // Ajout du fichier au projet
            proj.ProjectItems.AddFromFile(path);
             */
        }

        #endregion
    }
}
